iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0

一、終於走到這裡了

一開始決定參加鐵人賽的時候,其實最擔心的不是 JavaScript 有多難,而是「我真的有辦法連續寫 30 天嗎?」,畢竟平常學程式,可能今天學一點、隔幾天再繼續,但鐵人賽不一樣,每天都要想今天要寫什麼,還要想辦法把自己學到的東西整理成一篇文章而且還要會組織語言,結果寫著寫著,居然真的來到 Day30 了。

二、基本的 JavaScript 開始

前面的文章其實都很基礎,從怎麼讓 JavaScript 和網頁連在一起,到 DOM、Event、變數、條件、函式、Array,現在回頭看都不是什麼很複雜的東西,但也因為前面有先把這些東西弄懂,後面在寫 GSAP 的時候,才比較知道自己到底在控制什麼。

尤其是 Event

前面只是拿來做按鈕點擊,到了最後的作品,它已經變成控制 2D 網頁進入 3D 世界的重要一部分,原來前面做的小練習,後面真的會再遇到。

中間最常出現的不是成功,是錯誤

開始接觸 Library 之後,就遇到 npm、package.json、import、Vite,光是要讓程式正常跑起來,有時候就會卡很久,當我為了GSAP動畫然後想用:

npm run dev

結果又告訴我沒有 dev,有時候真的會有一種「我只是想讓動畫動起來而已,怎麼一堆步驟要我做」的感覺,但現在回頭看,這些錯誤反而是我印象最深的部分,因為從錯誤中尋找正確答案才是努力過程最令人開心且敬佩的事情。

三、GSAP 讓網頁變得很有趣

開始學 GSAP 之後,我覺得整個系列才真的開始變得很好玩,原本只是靜態的 HTML 和 CSS,加入 to()、from()、Timeline、ScrollTrigger 之後,網頁開始會進場、會跟著滾動,也開始有比較完整的互動感。

到了後面我第一次把前面學過的東西放在同一個網站裡,那時候網站我還有設定觸發按鈕,但其實按下去什麼都不會發生,沒想到到了後面,這顆原本只是放在畫面上的按鈕,真的變成了進入 Three.js 世界的入口。

四、Three.js 完全不一樣的是世界

Three.js 又是另一個完全不一樣的世界,Scene、Camera、Renderer、Geometry、Material、Light,一開始看到這些東西的時候,我心想怎麼又多了一堆我沒看過的字詞以及使用方法,但從第一個方塊出現在畫面上,到後來讓它旋轉、打光、用滑鼠控制,再把 GSAP 加進去,慢慢就開始知道每個東西在做什麼。

最後把前面製作的網站重新拿回來,按下 Enter 後真的可以從原本的 2D 網頁進入 3D 世界,那一刻才真的有一種:

前面學的東西全部接起來了。

五、結論

如果現在回頭看 Day1,我覺得最大的差別不是我記住了多少語法。而是以前看到一個網頁效果,可能只會覺得「這個好帥、好厲害」。現在開始,會想說哇賽這我學過,可能使用了 Event?或者更進階一點,這是不是有用到 GSAP 動畫效果,讓網頁的流暢性增加不那麼生硬,我覺得這才是這 30 天最大的收穫。

不是突然變得很會寫 JavaScript,而是開始知道自己可以用什麼工具,把腦袋裡想到的效果慢慢做出來。

30 天說長不長,但真的每天寫的時候又覺得很長,從最開始連續寫文章的壓力,到中間一直遇到錯誤,再到最後真的做出一個結合 JavaScript、GSAP 和 Three.js 的網站,至少我認為這 30 天沒有白寫,這次鐵人賽到這裡就真的結束了,但我想,JavaScript 應該還不會在這裡結束。

鐵人賽結束了,但我的 JavaScript 冒險才剛開始。


上一篇
Day29 最後一步:讓 3D 世界真的可以互動
系列文
JavaScript 從入門到進階:結合 Three.js × GSAP 打造互動網頁 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言